Systems and Methods for Matching Users

ABSTRACT

Systems and methods are provided for matching users. For example, a user list that includes multiple users to be matched is maintained; one or more first users are retrieved from the user list; one or more first user groups including the one or more first users are retrieved, the one or more first user groups containing a predetermined number of users from the user list; one or more first matching degrees are calculated for the one or more first user groups; a second user group associated with a highest first matching degree is selected from the one or more first user groups; and the second user group is returned.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application claims priority to Chinese Patent Application No.201310216154.X, filed Jun. 3, 2013, incorporated by reference herein forall purposes.

BACKGROUND OF THE INVENTION

Certain embodiments of the present invention are directed to computertechnology. More particularly, some embodiments of the invention providesystems and methods for data processing. Merely by way of example, someembodiments of the invention have been applied to user matching. But itwould be recognized that the invention has a much broader range ofapplicability.

Currently, the Internet has become an indispensable communicationchannel in people's daily lives. Through various applications, users cansocialize, play games or enjoy entertainment through the Internet. Manyapplications may involve multiple users. For example, multiple playersmay need to work together to play a game, and thus a server needs tomatch different users to provide various Internet services to the users.

Hence it is highly desirable to improve the techniques for usermatching.

BRIEF SUMMARY OF THE INVENTION

According to one embodiment, a method is provided for matching users.For example, a user list that includes multiple users to be matched ismaintained; one or more first users are retrieved from the user list;one or more first user groups including the one or more first users areretrieved, the one or more first user groups containing a predeterminednumber of users from the user list; one or more first matching degreesare calculated for the one or more first user groups; a second usergroup associated with a highest first matching degree is selected fromthe one or more first user groups; and the second user group isreturned.

According to another embodiment, a user-matching device includes thelist-maintenance module, the user-retrieval module, the matching module,the matching-degree-calculation module, the selection module and thereturn module. The list-maintenance module is configured to maintain auser list that includes multiple users to be matched. The user-retrievalmodule is configured to retrieve one or more first users from the userlist. The matching module is configured to retrieve one or more firstuser groups including the one or more first users, the one or more firstuser groups containing a predetermined number of users from the userlist. The matching-degree-calculation module is configured to calculateone or more first matching degrees for the one or more first usergroups. The selection module is configured to select a second user groupassociated with a highest first matching degree from the one or morefirst user groups. The return module is configured to return the seconduser group.

According to yet another embodiment, a non-transitory computer readablestorage medium includes programming instructions for matching users. Theprogramming instructions are configured to cause one or more dataprocessors to execute certain operations. For example, a user list thatincludes multiple users to be matched is maintained; one or more firstusers are retrieved from the user list; one or more first user groupsincluding the one or more first users are retrieved, the one or morefirst user groups containing a predetermined number of users from theuser list; one or more first matching degrees are calculated for the oneor more first user groups; a second user group associated with a highestfirst matching degree is selected from the one or more first usergroups; and the second user group is returned.

Depending upon embodiment, one or more benefits may be achieved. Thesebenefits and various additional objects, features and advantages of thepresent invention can be fully appreciated with reference to thedetailed description and accompanying drawings that follow.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a simplified diagram showing an operating environment for usermatching according to one embodiment of the present invention.

FIG. 2 is a simplified diagram showing a server for user matchingaccording to one embodiment of the present invention.

FIG. 3 is a simplified diagram showing a method for user matchingaccording to one embodiment of the present invention.

FIG. 4 is a simplified diagram showing a method for user matchingaccording to another embodiment of the present invention.

FIG. 5 is a simplified diagram showing a method for user matchingaccording to yet another embodiment of the present invention.

FIG. 6 is a simplified diagram showing a method for user matchingaccording to yet another embodiment of the present invention.

FIG. 7 is a simplified diagram showing a device for user matchingaccording to one embodiment of the present invention.

FIG. 8 is a simplified diagram showing a device for user matchingaccording to another embodiment of the present invention.

FIG. 9 is a simplified diagram showing a device for user matchingaccording to yet another embodiment of the present invention.

FIG. 10 is a simplified diagram showing a device for user matchingaccording to yet another embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 is a simplified diagram showing an operating environment for usermatching according to one embodiment of the present invention. Thisdiagram is merely an example, which should not unduly limit the scope ofthe claims. One of ordinary skill in the art would recognize manyvariations, alternatives, and modifications.

According to one embodiment, as shown in FIG. 1, a user 11 sends amatching request to a server 10 via the Internet. For example, theserver 10 accordingly receives the incoming matching request from theuser, completes matching users and returns matching results to the user11. As an example, the user 11 relies on a certain client when sendingthe matching request. For example, the client includes an electronicdevice installed and operated with a smart operating system, such as acomputer, a laptop, a tablet, a smart phone, a wearable electronicterminal (e.g., a mobile smart watch, glasses, etc.).

FIG. 2 is a simplified diagram showing the server 10 for user matchingaccording to one embodiment of the present invention. This diagram ismerely an example, which should not unduly limit the scope of theclaims. One of ordinary skill in the art would recognize manyvariations, alternatives, and modifications. The server 10 includes oneor more processors 102, one or more storage media 104 and a transmissionmodule 106.

According to one embodiment, the storage media 104 is configured tostore software programs and modules, such as programinstructions/modules that correspond to a user-matching method and auser-matching device described in the present disclosure. For example,the processors 102 execute various functional applications and dataprocessing through the software programs and modules stored in thestorage media 104 to realize the user-matching method and theuser-matching device. As an example, the storage media 104 includeshigh-speed random access memory devices, as well as non-volatile memorydevices such as one or more magnetic storage devices, flash memory orother non-volatile, solid state memory devices. In some embodiments, thestorage media 104 further include remote memory devices relative to theprocessors 102, and these remote memory devices can be connected to theserver 10 via a network (e.g., the Internet, a company intranet, a localarea network or a mobile communication network, or other suitablenetworks).

According to another embodiment, the transmission module 106 isconfigured to receive or send data through a network (e.g., a wirednetwork, or a wireless network). For example, the transmission module106 includes a Network Interface Controller (NIC) that can be connectedto other network devices or routers using a network cable to communicatewith the Internet. In another example, the transmission module 106includes a Radio Frequency (RF) module configured to communicate withclients wirelessly.

FIG. 3 is a simplified diagram showing a method for user matchingaccording to one embodiment of the present invention. This diagram ismerely an example, which should not unduly limit the scope of theclaims. One of ordinary skill in the art would recognize manyvariations, alternatives, and modifications. The method 300 includes atleast the process S110-S160.

According to one embodiment, the process S110 includes: maintaining auser list that includes multiple users to be matched. As shown in FIG.1, different users send matching requests to the server 10 respectively,in some embodiments. For example, the server 10 receives the incomingmatching requests from the users through the transmission module 106. Asan example, a matching request corresponds to at least one user. Inanother example, each matching request corresponds to only one user. Inyet another example, each matching request corresponds to two or moreusers. For example, a particular user invites his/her good friends toform a team and then sends a matching request to the server 10. In thiscase, the matching request corresponds to two or more users. Uponreceipt of the matching request, the server 10 can then parse andidentify the corresponding users and add every user to the user list, incertain embodiments. For example, the user list has a certain logicalorder. As an example, the user list is arranged in accordance withsubmission times of certain matching requests. The logical sequencing isdifferent from a storage structure and a storage order of the user list,in some embodiments.

According to another embodiment, the process S120 includes: retrievingat least one user from the user list. For example, at least one usercorresponding to an earliest submission time of a matching request isretrieved from the user list. In some embodiments, the user list isordered based on at least information associated with user priority. Forexample, some important users can have a higher priority and be givenpreference for user matching. As an example, the retrieved at least oneuser here can be one user. In another example, multiple users correspondto a matching request, and the retrieved at least one user may includeall users associated with the matching request, so that all users of thematching request are matched into a user group.

According to yet another embodiment, the process S130 includes:retrieving one or more user groups that include the at least one user.For example, the user groups include a predetermined number of userswithin the user list. As an example, the user list includes M users, andthe retrieved at least one user includes A users. The predeterminednumber of users correspond to K users. For example, the process StepS130 includes: retrieving all possible sub-groups (e.g., K−A) from theuser list except the at least one user (e.g., M−A). As an example, thenumber of such possible sub-groups is C_(M−A) ^(K−A). All user groupscan be obtained by combining these sub-groups with the retrieved atleast one user, in some embodiments. For example, the process S130includes: retrieving from M users all possible groups including K users.The number of such user groups is C_(M) ^(K), and then the user groupsthat include the retrieved at least one user are retrieved.

In another embodiment, the process S140 includes: calculating a matchingdegree for each user group. For example, the matching degree iscalculated based on at least information associated with one or morecharacteristic requests of a user. As an example, a user group matchingthe user's characteristic requests has a high matching degree. Inanother example, the matching degree is represented by one or moreindices. The higher the index, the higher the matching degree. As anexample, calculating a matching degree of a user group including N userswith respect to a particular characteristic request includes: obtainingall possible two-user sub-groups among all users within the user group;calculating a matching value M for each sub-group. For example, if asub-group matches with the characteristic value corresponding to thecharacteristic request, M is a predetermined non-zero value. Otherwise,M is zero. In another example, calculating a matching degree of a usergroup including N users with respect to a particular characteristicrequest includes: calculating the characteristic matching degree basedon the following formula:

$\frac{\sum\limits_{1}^{C_{N}^{2}}\; M}{C_{N}^{2}}.$

In yet another example, the characteristic request is included in thematching request. For example, a user interface is provided on a clientto record certain characteristics desired by a user, such as user role,level, gender, geographical location, etc.

In yet another embodiment, during the process S110, if a matchingrequest is received from a first user, one or more second userscorresponding to the matching request are added to the user list.Furthermore, one or more characteristic values are set for the newlyadded second users. As an example, the characteristic values areobtained from a database. In another example, the method 300 includes:setting one or more characteristic values for each user in the userlist.

In some embodiments, in a matching request, a user requires other usersor virtual roles operated by other users have certaincharacteristics: 1. level matching; 2. complementary roles; 3.geographical proximity (same city). For example, with respect to eachcharacteristic, if two users are matched, the matching degree of thatparticular characteristic is 100. In another example, in a user group,the average value of the matching degree of all the two-user sub-groupsis recorded as the matching degree of that particular characteristic. Inyet another example, the level matching refers to at a same level orwith a same level range. As an example, the level range can be 1-5,6-10, 11-15, etc. The smaller the level difference, the higher thematching degree. For example, the complementary roles refer to differentroles. The more the roles complement each other, the higher the matchingdegree. As another example, with respect to the geographical location,the closer the two users are, the higher the matching degree. If twousers are located in a same city, a highest matching degree (e.g., 100)is given, in some embodiments.

According to one embodiment, a user group includes the following threeusers: User A: Level 10, role of master, geographical location inShenzhen; User B: Level 8, role of master, geographical location inGuangzhou; User C: Level 12, role of master, geographical location inShenzhen. For example, with respect to level matching, A and B matchwith each other, A and. C do not match, and. B and C do not match.Hence, the matching degree=(100+0+0)/3=33.3. In another example, withrespect to roles, A, B and C do not match with each other, and thus thematching degree=0. In yet another example, with respect to geographicallocations, A and C match with each other, while A and B half-match witheach other and B and C half-match with each other (e.g., users in a sameregion are considered to be half-match). Hence, the matchingdegree=(100+50+50)/3=66.7.

In some embodiments, the importance of each characteristic is different,and the specific importance may be set according to specific needs. Forexample, for a matching request that includes several characteristicrequests, the calculation of the matching degree of a user groupincludes: retrieving one or more characteristic requests of a user;setting one or more weighting factors for each characteristic request;calculating one or more characteristic matching degrees based on atleast information associated with the one or more characteristicrequests; and calculating a matching degree for the user group based onat least information associated with the weighting factors and the firstcharacteristic matching degrees. In another example, level matching hasa highest priority, role matching has a second highest priority, andgeographical location matching has a lowest priority. The weightingfactors of the three characteristics are 60, 30 and 10 respectively. Asan example, the overall matching degree=level*0.6+role*0.3+geographicallocation*0.1=33.3*0.6+0*0.3+66.7*0.1=26.65.

According to yet another embodiment, the process S150 includes:selecting a user group that has a highest matching degree from all theuser groups. For example, after the matching degrees of all user groupshave been calculated, the matching degrees are arranged in order and theuser group with the highest matching degree is then selected. In anotherexample, the process S160 includes: returning the user group that hasthe highest matching degree. In yet another example, returning the usergroup that has the highest matching degree refers to: for every user inthe user group, return the information of all other users, and theinformation of other users can be displayed at a side of the user. Inyet another example, the information of other users includes attributeinformation of other users such as role names, levels, role types,geographical locations, etc. The user-matching method 300 can beimplemented to obtain quickly user-matching results that meet userexpectations to allow smooth operations of various online applications,in some embodiments.

FIG. 4 is a simplified diagram showing the method 300 for user matchingaccording to another embodiment of the present invention. This diagramis merely an example, which should not unduly limit the scope of theclaims. One of ordinary skill in the art would recognize manyvariations, alternatives, and modifications. In addition to theprocesses S110-S160, the method 300 further includes at least theprocess S210. According to one embodiment, after the process S160, theprocess S210 is executed and includes: deleting all users in thereturned user group from the user list. Thus, a same user will not bematched to two different user groups at the same time, in someembodiments.

FIG. 5 is a simplified diagram showing the method 300 for user matchingaccording to yet another embodiment of the present invention. Thisdiagram is merely an example, which should not unduly limit the scope ofthe claims. One of ordinary skill in the art would recognize manyvariations, alternatives, and modifications. In addition to theprocesses S110-S160, the method 300 further includes at least theprocess S310. According to one embodiment, the process S310 is executedbetween the process S110 and the process S120 and includes: determiningwhether a wait time associated with a matching request related to a userin the user list exceeds a threshold based on at least informationassociated with a submission time of the matching request; in responseto the wait time exceeding the threshold, returning a matching-failuremessage for the user and deleting the user from the user list.

FIG. 6 is a simplified diagram showing the method 300 for user matchingaccording to yet another embodiment of the present invention. Thisdiagram is merely an example, which should not unduly limit the scope ofthe claims. One of ordinary skill in the art would recognize manyvariations, alternatives, and modifications. In addition to theprocesses S110-S160, the method 300 further includes at least theprocesses S410 and S420.

According to one embodiment, the process S410 is executed between theprocess S150 and the process S160, and includes: determine if a matchingdegree of a user group with a highest matching degree has exceeded apredetermined threshold. For example, if the highest matching degreeexceeds the predetermined threshold, the process S160 is executed.Otherwise, the process S420 is executed and a match-failure result isreturned. The match-failure result is returned only when the matchingdegree of the user group with the highest matching degree exceeds thepredetermined threshold, so as to ensure that the matched user generallyfalls within an expected range, in some embodiments.

FIG. 7 is a simplified diagram showing a device for user matchingaccording to one embodiment of the present invention. This diagram ismerely an example, which should not unduly limit the scope of theclaims. One of ordinary skill in the art would recognize manyvariations, alternatives, and modifications. The device 700 includes alist-maintenance module 510, a user-retrieval module 520, a matchingmodule 530, a matching-degree-calculation module 540, a selection module550 and a return module 560.

According to one embodiment, a list-maintenance module 510 is configuredto maintain a user list that includes multiple users to be matched. Asshown in FIG. 1, different users send matching requests to the server 10respectively, in some embodiments. For example, the server 10 receivesthe incoming matching requests from the users through the transmissionmodule 106. As an example, a matching request corresponds to at leastone user. In another example, each matching request corresponds to onlyone user. In yet another example, each matching request corresponds totwo or more users. For example, a particular user invites his/her goodfriends to form a team and then sends a matching request to the server10. In this case, the matching request corresponds to two or more users.Upon receipt of the matching request, the server 10 can then parse andidentify the corresponding users and add every user to the user list, incertain embodiments. As an example, the list-maintenance module 510 isfurther configured to set characteristic values for each user in theuser list. The characteristic values refer, for example, to informationsuch as level, gender and geographical location of a user or a virtualcharacter operated by a user. For example, the user list has a certainlogical order. As an example, the user list is arranged in accordancewith submission times of certain matching requests. The logicalsequencing is different from a storage structure and a storage order ofthe user list, in some embodiments.

According to another embodiment, the user-retrieval module 520 isconfigured to retrieve at least one user from the user list. Forexample, at least one user corresponding to an earliest submission timeof a matching request is retrieved from the user list. In someembodiments, the user list is ordered based on at least informationassociated with user priority. For example, some important users canhave a higher priority and be given preference for user matching. As anexample, the retrieved at least one user here can be one user. Inanother example, multiple users correspond to a matching request, andthe retrieved at least one user may include all users associated withthe matching request, so that all users of the matching request arematched into a user group.

According to yet another embodiment, a matching module 530 is configuredto retrieve all user groups that include the retrieved at least oneuser. For example, the user groups include a predetermined number ofusers within the user list. In another example, thematching-degree-calculation module 540 is configured to calculate amatching degree for each user group. For example, the matching degree iscalculated based on at least information associated with one or morecharacteristic requests of a user. As an example, a user group matchingthe user's characteristic requests has a high matching degree. Inanother example, the matching degree is represented by one or moreindices. The higher the index, the higher the matching degree. As anexample, calculating a matching degree of a user group including N userswith respect to a particular characteristic request includes: obtainingall possible two-user sub-groups among all users within the user group;calculating a matching value M for each sub-group. For example, if asub-group matches with the characteristic value corresponding to thecharacteristic request, M is a predetermined non-zero value. Otherwise,M is zero. In another example, calculating a matching degree of a usergroup including N users with respect to a particular characteristicrequest includes: calculating the characteristic matching degree basedon the following formula:

$\frac{\sum\limits_{1}^{C_{N}^{2}}\; M}{C_{N}^{2}}.$

In yet another example, the characteristic request is included in thematching request. For example, a user interface is provided on a clientto record certain characteristics desired by a user, such as user role,level, gender, geographical location, etc.

In some embodiments, the importance of each characteristic is different,and the specific importance may be set according to specific needs. Forexample, for a matching request that includes several characteristicrequests, the calculation of the matching degree of a user groupincludes: retrieving one or more characteristic requests of a user;setting one or more weighting factors for each characteristic request;calculating one or more characteristic matching degrees based on atleast information associated with the one or more characteristicrequests; and calculating a matching degree for the user group based onat least information associated with the weighting factors and the firstcharacteristic matching degrees.

In certain embodiments, the selection module 550 is configured to selecta user group with a highest matching degree from all the user groups.For example, after the matching degree of all user groups have beencalculated, the matching degrees are arranged in order and the usergroup that has the highest matching degree is then selected. In anotherexample, the return module 560 is configured to return the user groupthat has the highest matching degree. In yet another example, returningthe user group that has the highest matching degree refers to: for everyuser in the user group, return the information of all other users, andthe information of other users can be displayed at a side of the user.In yet another example, the information of other users includesattribute information of other users such as role names, levels, roletypes, geographical locations, etc.

FIG. 8 is a simplified diagram showing the device 700 for user matchingaccording to another embodiment of the present invention. This diagramis merely an example, which should not unduly limit the scope of theclaims. One of ordinary skill in the art would recognize manyvariations, alternatives, and modifications. For example, in addition tothe modules 510-560, the device 700 further includes a deletion module610 configured to delete all users in a returned user group from theuser list. Thus, a same user will not be matched to two different usergroups at the same time, in some embodiments.

FIG. 9 is a simplified diagram showing the device 700 for user matchingaccording to yet another embodiment of the present invention. Thisdiagram is merely an example, which should not unduly limit the scope ofthe claims. One of ordinary skill in the art would recognize manyvariations, alternatives, and modifications. For example, in addition tothe modules 510-560, the device 700 further includes atimeout-processing module 710 configured to: determine whether a waittime associated with a matching request related to a user in the userlist exceeds a threshold based on at least information associated with asubmission time of the matching request; in response to the wait timeexceeding the threshold, return a matching-failure message for the userand delete the user from the user list.

FIG. 10 is a simplified diagram showing the device 700 for user matchingaccording to yet another embodiment of the present invention. Thisdiagram is merely an example, which should not unduly limit the scope ofthe claims. One of ordinary skill in the art would recognize manyvariations, alternatives, and modifications.

According to certain embodiments, in addition to the modules 510-560,the device 700 further includes a matching-degree-determining module 810configured to determine if a matching degree of a user group with ahighest matching degree has exceeded a predetermined threshold. Forexample, the return module 560 is further configured to, in response tothe highest matching degree exceeding the predetermined threshold,return the user group with the highest matching degree, and in responseto the highest matching degree not exceeding the predeterminedthreshold, return a matching failure result. The match-failure result isreturned only when the matching degree of the user group with thehighest matching degree exceeds the predetermined threshold, so as toensure that the matched user generally falls within an expected range,in some embodiments.

According to one embodiment, a method is provided for matching users.For example, a user list that includes multiple users to be matched ismaintained; one or more first users are retrieved from the user list;one or more first user groups including the one or more first users areretrieved, the one or more first user groups containing a predeterminednumber of users from the user list; one or more first matching degreesare calculated for the one or more first user groups; a second usergroup associated with a highest first matching degree is selected fromthe one or more first user groups; and the second user group isreturned. For example, the method is implemented according to at leastFIG. 3, FIG. 4, FIG. 5, and/or FIG. 6.

According to another embodiment, a user-matching device includes thelist-maintenance module, the user-retrieval module, the matching module,the matching-degree-calculation module, the selection module and thereturn module. The list-maintenance module is configured to maintain auser list that includes multiple users to be matched. The user-retrievalmodule is configured to retrieve one or more first users from the userlist. The matching module is configured to retrieve one or more firstuser groups including the one or more first users, the one or more firstuser groups containing a predetermined number of users from the userlist. The matching-degree-calculation module is configured to calculateone or more first matching degrees for the one or more first usergroups. The selection module is configured to select a second user groupassociated with a highest first matching degree from the one or morefirst user groups. The return module is configured to return the seconduser group. For example, the device is implemented according to at leastFIG. 7, FIG. 8, FIG. 9, and/or FIG. 10.

According to yet another embodiment, a non-transitory computer readablestorage medium includes programming instructions for matching users. Theprogramming instructions are configured to cause one or more dataprocessors to execute certain operations. For example, a user list thatincludes multiple users to be matched is maintained; one or more firstusers are retrieved from the user list; one or more first user groupsincluding the one or more first users are retrieved, the one or morefirst user groups containing a predetermined number of users from theuser list; one or more first matching degrees are calculated for the oneor more first user groups; a second user group associated with a highestfirst matching degree is selected from the one or more first usergroups; and the second user group is returned. For example, the storagemedium is implemented according to at least FIG. 3, FIG. 4, FIG. 5,and/or FIG. 6.

The above only describes several scenarios presented by this invention,and the description is relatively specific and detailed, yet it cannottherefore be understood as limiting the scope of this invention'spatent. It should be noted that ordinary technicians in the field mayalso, without deviating from the invention's conceptual premises, make anumber of variations and modifications, which are all within the scopeof this invention. As a result, in terms of protection, the patentclaims shall prevail.

For example, some or all components of various embodiments of thepresent invention each are, individually and/or in combination with atleast another component, implemented using one or more softwarecomponents, one or more hardware components, and/or one or morecombinations of software and hardware components. In another example,some or all components of various embodiments of the present inventioneach are, individually and/or in combination with at least anothercomponent, implemented in one or more circuits, such as one or moreanalog circuits and/or one or more digital circuits. In yet anotherexample, various embodiments and/or examples of the present inventioncan be combined.

Additionally, the methods and systems described herein may beimplemented on many different types of processing devices by programcode comprising program instructions that are executable by the deviceprocessing subsystem. The software program instructions may includesource code, object code, machine code, or any other stored data that isoperable to cause a processing system to perform the methods andoperations described herein. Other implementations may also be used,however, such as firmware or even appropriately designed hardwareconfigured to carry out the methods and systems described herein.

The systems' and methods' data (e.g., associations, mappings, datainput, data output, intermediate data results, final data results, etc.)may be stored and implemented in one or more different types ofcomputer-implemented data stores, such as different types of storagedevices and programming constructs (e.g., RAM, ROM, Flash memory, flatfiles, databases, programming data structures, programming variables,IF-THEN (or similar type) statement constructs, etc.). It is noted thatdata structures describe formats for use in organizing and storing datain databases, programs, memory, or other computer-readable media for useby a computer program.

The systems and methods may be provided on many different types ofcomputer-readable media including computer storage mechanisms (e.g.,CD-ROM, diskette, RAM, flash memory, computer's hard drive, etc.) thatcontain instructions (e.g., software) for use in execution by aprocessor to perform the methods' operations and implement the systemsdescribed herein.

The computer components, software modules, functions, data stores anddata structures described herein may be connected directly or indirectlyto each other in order to allow the flow of data needed for theiroperations. It is also noted that a module or processor includes but isnot limited to a unit of code that performs a software operation, andcan be implemented for example as a subroutine unit of code, or as asoftware function unit of code, or as an object (as in anobject-oriented paradigm), or as an applet, or in a computer scriptlanguage, or as another type of computer code. The software componentsand/or functionality may be located on a single computer or distributedacross multiple computers depending upon the situation at hand.

The computing system can include client devices and servers. A clientdevice and server are generally remote from each other and typicallyinteract through a communication network. The relationship of clientdevice and server arises by virtue of computer programs running on therespective computers and having a client device-server relationship toeach other.

While this specification contains many specifics, these should not beconstrued as limitations on the scope or of what may be claimed, butrather as descriptions of features specific to particular embodiments.Certain features that are described in this specification in the contextor separate embodiments can also be implemented in combination in asingle embodiment. Conversely, various features that are described inthe context of a single embodiment can also be implemented in multipleembodiments separately or in any suitable subcombination. Moreover,although features may be described above as acting in certaincombinations and even initially claimed as such, one or more featuresfrom a claimed combination can in some cases be excised from thecombination, and the claimed combination may be directed to asubcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multitasking and parallel processingmay be advantageous. Moreover, the separation of various systemcomponents in the embodiments described above should not be understoodas requiring such separation in all embodiments, and it should beunderstood that the described program components and systems cangenerally be integrated together in a single software product orpackaged into multiple software products.

Although specific embodiments of the present invention have beendescribed, it will be understood by those of skill in the art that thereare other embodiments that are equivalent to the described embodiments.Accordingly, it is to be understood that the invention is not to belimited by the specific illustrated embodiments, but only by the scopeof the appended claims.

1. A method for matching users comprising: maintaining a user list thatincludes multiple users to be matched; retrieving one or more firstusers from the user list; retrieving one or more first user groupsincluding the one or more first users, the one or more first user groupscontaining a predetermined number of users from the user list;calculating one or more first matching degrees for the one or more firstuser groups; selecting a second user group associated with a highestfirst matching degree from the one or more first user groups; andreturning the second user group.
 2. The method of claim 1, furthercomprising: setting one or more characteristic values for a second userin the user list.
 3. The method of claim 2 wherein the calculating oneor more first matching degrees for the one or more first user groupsincludes: retrieving one or more first characteristic requests of theone or more first users; setting one or more weighting factors for oneof the one or more first characteristic requests; calculating one ormore first characteristic matching degrees based on at least informationassociated with the one or more first characteristic requests; andcalculating a first matching degree for a second user group based on atleast information associated with the weighting factors and the firstcharacteristic matching degrees, the second user group being included inthe first user groups.
 4. The method of claim 3 wherein: the second usergroup includes N users; and the calculating one or more firstcharacteristic matching degrees based on at least information associatedwith the one or more first characteristic requests includes: obtainingone or more first sub-groups from the second user group, a firstsub-group including two users within the second user group; calculatingone or more first matching values M for the one or more firstsub-groups; wherein: in response to a second sub-group matching with acharacteristic value associated with a first characteristic request, asecond matching value for the second sub-group corresponds to apredetermined non-zero magnitude, the second sub-group being included inthe one or more first sub-groups; and in response to the secondsub-group not matching with the characteristic value associated with thefirst characteristic request, the second matching value for the secondsub-group corresponds to zero; and calculating a second characteristicmatching degree based on at least information associated with a formula:$\frac{\sum\limits_{1}^{C_{N}^{2}}\; M}{C_{N}^{2}},$ the secondcharacteristic matching degree being included in the one or more firstcharacteristic matching degrees.
 5. The method of claim 1, furthercomprising: deleting one or more second users included in the seconduser group from the user list.
 6. The method of claim 1, furthercomprising: receiving, from a client, a matching request correspondingto one or more second users; and adding the one or more second users tothe user list.
 7. The method of claim 6 wherein in response to thematching request corresponding to multiple second users, one or morethird user groups including the multiple second users are retrieved. 8.The method of claim 1 wherein: the user list is sorted based on at leastinformation associated with one or more submission times related to oneor more matching requests; and the retrieving one or more first usersfrom the user list includes retrieving a second user corresponding to anearliest submission time.
 9. The method of claim 1, further comprising:determining whether a wait time associated with a matching requestrelated to a second user in the user list exceeds a threshold based onat least information associated with a submission time of the matchingrequest; in response to the wait time exceeding the threshold, returninga matching-failure message for the second user; and deleting the seconduser from the user list.
 10. A user-matching device comprising: alist-maintenance module configured to maintain a user list that includesmultiple users to be matched; a user-retrieval module configured toretrieve one or more first users from the user list; a matching moduleconfigured to retrieve one or more first user groups including the oneor more first users, the one or more first user groups containing apredetermined number of users from the user list; amatching-degree-calculation module configured to calculate one or morefirst matching degrees for the one or more first user groups; aselection module configured to select a second user group associatedwith a highest first matching degree from the one or more first usergroups; and a return module configured to return the second user group.11. The device of claim 10 wherein the list-maintenance module isfurther configured to: set one or more characteristic values for asecond user in the user list.
 12. The device of claim 11 wherein thematching-degree-calculation module is further configured to: retrieveone or more first characteristic requests of the one or more firstusers; set one or more weighting factors for one of the one or morefirst characteristic requests; calculate one or more firstcharacteristic matching degrees based on at least information associatedwith the one or more first characteristic requests; and calculate afirst matching degree for a second user group based on at leastinformation associated with the weighting factors and the firstcharacteristic matching degrees, the second user group being included inthe first user groups.
 13. The device of claim 12 wherein: the seconduser group includes N users; and the matching-degree-calculation moduleis further configured to: obtain one or more first sub-groups from thesecond user group, a first sub-group including two users within thesecond user group; calculate one or more first matching values M for theone or more first sub-groups; wherein: in response to a second sub-groupmatching with a characteristic value associated with a firstcharacteristic request, a second matching value for the second sub-groupcorresponds to a predetermined non-zero magnitude, the second sub-groupbeing included in the one or more first sub-groups; and in response tothe second sub-group not matching with the characteristic valueassociated with the first characteristic request, the second matchingvalue for the second sub-group corresponds to zero; and calculate asecond characteristic matching degree based on at least informationassociated with a formula:$\frac{\sum\limits_{1}^{C_{N}^{2}}\; M}{C_{N}^{2}},$ the secondcharacteristic matching degree being included in the one or more firstcharacteristic matching degrees.
 14. The device of claim 10, furthercomprising: a deletion module configured to delete one or more secondusers included in the second user group from the user list.
 15. Thedevice of claim 10 wherein the list-maintenance module is furtherconfigured to: receive, from a client, a matching request correspondingto one or more second users; and add the one or more second users to theuser list.
 16. The device of claim 15 wherein in response to thematching request corresponding to multiple second users, theuser-retrieval module is configured to retrieve one or more third usergroups including the multiple second users.
 17. The device of claim 10wherein: the user list is sorted based on at least informationassociated with one or more submission times related to one or morematching requests; and the user-retrieval module is configured to:retrieve a second user corresponding to an earliest submission time. 18.The device of claim 10, further comprising: a timeout-processing moduleconfigured to: determine whether a wait time associated with a matchingrequest related to a second user in the user list exceeds a thresholdbased on at least information associated with a submission time of thematching request; in response to the wait time exceeding the threshold,return a matching-failure message for the second user; and delete thesecond user from the user list.
 19. The device of claim 10, furthercomprising: one or more data processors; and a computer-readable storagemedium; wherein one or more of the list-maintenance module, theuser-retrieval module, the matching module, thematching-degree-calculation module, the selection module and the returnmodule are stored in the storage medium and configured to be executed bythe one or more data processors.
 20. A non-transitory computer readablestorage medium comprising programming instructions for matching users,the programming instructions configured to cause one or more dataprocessors to execute operations comprising: maintaining a user listthat includes multiple users to be matched; retrieving one or more firstusers from the user list; retrieving one or more first user groupsincluding the one or more first users, the one or more first user groupscontaining a predetermined number of users from the user list;calculating one or more first matching degrees for the one or more firstuser groups; selecting a second user group associated with a highestfirst matching degree from the one or more first user groups; andreturning the second user group.